import json
import numpy as np
from my_model import get_output
def predict(input_json_str):
    """
    参数: input_json_str (str): json格式的字符串
    返回: json格式的字符串
    """
    # 示例：解析输入，做简单处理，再返回
    try:
        record = json.loads(input_json_str)
        print ('数据提交时间：', record['time'])
        # print ('数据：', record['data'])
        
        # 以下为数据处理流程
        # 假设input是sample1.npy
        # index代表当前样本的标签，是一个列表格式的int
        input = record['data']
        # 将JSON数据转换为numpy数组
        input = np.array(input)
        print('input.shape:',input.shape, input.size)
        output = get_output(input, n_features = 14,output_size = 4,param ='LSTM_best_model.pth')
        index = output
        # record['data'] 是客户端提交的数据，为一个numpy可以识别的数组
        # 这里可以添加实际的预测逻辑
        # 示例：返回一个假的结果，以及数据提交的时间

        import random
        result = {
            'index': random.randint(0, 3), # 随机返回0-3之间的整数
            'time': record['time']
        }
        return json.dumps(result)
    except Exception as e:
        import traceback
        traceback.print_exc()
        return json.dumps({'status': 'error', 'message': str(e)}) 